#include<stdio.h>
#include<stdlib.h>
#include<math.h>

float floatValue(char a){
      return (float) (a - '0');
}

float parse(char *a){
      float f1 = 0;
      float f2 = 0;
      int flag = 0;
      while(*a != '\0'){
               if( !(*a >= '0' && *a <= '9') && *a != '.' ){
                       printf("illegal string\n");
                       return 0;
               }
               if( *a != '.' ){
                   if( !flag )
                           f1 = f1 * 10 + floatValue(*a);
                   else
                           f2 += floatValue(*a) / pow(10, flag++);                           
               }else
                    ++flag;
               a++;             
      }    
      return f1 + f2;
}

int main(){
    char *a = "0.2541"; 
    printf("%f", parse(a));
    getchar();
}
